# pymysql 用 connect 方法进行连接（修正模块名拼写）
import pymysql

conn = pymysql.connect(
    host="localhost",  # 修正 "1ocalhost" → "localhost"
    port=3306,         # 修正中文逗号 → 英文逗号
    user="root",
    password="123456",
    database="demo01",
    charset="utf8mb4"
)

def con_my_sql(sql_code):  # 修正函数名 sq1 → sql
    try:
        conn.ping(reconnect=True)  # 保证数据库连接正常
        print(sql_code)
        # 通过游标对象对数据库服务器发出 SQL 语句
        cursor = conn.cursor(pymysql.cursors.DictCursor)  # 修正符号和拼写
        cursor.execute(sql_code)  # 修正变量名 sql code → sql_code
        # 提交
        conn.commit()  # 修正 @ → ()
        # 关闭连接
        conn.close()
        return cursor  # 普通执行返回 cursor
    except pymysql.MySQLError as err_message:  # 修正模块名拼写
        # 回滚
        conn.rollback()  # 修正 ro11back → rollback
        # 关闭连接
        conn.close()    # 修正 c1ose → close
        return type(err_message), err_message


# 插入测试（安全写法建议）
# username = "张4"
# pwd = '123456'
# code = "INSERT INTO `login_user` (`username`, `password`) VALUES ('%s','%s')" % (username, pwd)
# print(con_my_sql(code)) # 参数化查询避免 SQL 注入

# 查询测试
# username = "张三"
# code = "SELECT * FROM login_user "
# cursor_ans = con_my_sql(code)    # 传递参数元组
# print(cursor_ans.fetchall())